<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 执行器函数（excutor函数）

        // 构造函数
        // let p1 = new Promise((resolve,reject)=>{
        //     console.log("excutor");
        //     // resolve('ok')
        //     reject('我腿疼')
        //     // reject('err')
        //     // resolve('ok')
        // });

        // console.log(p1);

        // // then
        // p1.then(val=>{
        //     console.log("成功",val);
        // },rea=>{
        //     console.log("失败",rea);
        // })

        // console.log("end");

        // 1.  promise实例初始状态为 pending，初始值为undefined
        let p = new Promise((resolve,reject)=>{
            console.log("excutor函数内");
            // resolve('成功');
            // reject('error')
            // throw 'ok';
            // console.log(a);
            // throw new Error('错误')
        });
        console.log(p);
        // 1.1 PromiseState 状态
        // 1.2 PromiseResult 结果值

        // 2. promise的excutor函数是同步回调


        // 3. promise的excutor函数内调用resolve函数后
        // 3.1 状态 pending => fulfilled（成功）
        // 3.2 结果值 => resolve内参数

        // 4. promise的excutor函数内调用reject函数后
        // 4.1 状态 pending => rejected（失败）
        // 4.2 结果值 => rejected内参数

        // 5. 状态只能修改一次
        // 5.1 以第一次修改状态为准

        // 6. excutor函数内有异常，那么状态被更改为rejected,值为异常信息
        // 6.1 出现异常，
        // 6.2 抛出错误对象
        // 6.3 抛出字符串
        


    </script>
</body>

</html>